package com.fenghongzhang.day005;

import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

public class FengView extends View {

    private static final String TAG = "FengView";
    public FengView(Context context) {
        super(context);
    }

    public FengView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        Log.i(TAG, "dispatchTouchEvent: ");
        return super.dispatchTouchEvent(event);
        LinearLayout
    }

    /**
     * 事件拦截，当一个ViewGroup在接到MotionEvent事件序列时候，
     * 首先会调用此方法判断是否需要拦截。特别注意，
     * 这是ViewGroup特有的方法，View并没有拦截方法
     * 返回值：是否拦截事件传递，返回true表示拦截了事件，
     * 那么事件将不再向下分发而是调用View本身的onTouchEvent方法。
     * 返回false表示不做拦截，事件将向下分发到子View的dispatchTouchEvent方法。
     *

     * @param ev
     * @return
     */
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        Log.i(TAG, "onInterceptTouchEvent: ");
        return super.dispatchTouchEvent(ev);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

    }



    //

    /**
     * 真正对MotionEvent进行处理或者说消费的方法。在dispatchTouchEvent进行调用。
     * 返回值：返回true表示事件被消费，本次的事件终止。
     * 返回false表示事件没有被消费，将调用父View的onTouchEvent方法
     *
     * @param event
     * @return
     */
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_UP){
            Log.i(TAG, "onTouchEvent: +ACTION_UP");
        }else if(event.getAction() ==  MotionEvent.ACTION_DOWN ){
            Log.i(TAG, "onTouchEvent: +ACTION_DOWN");
        }else if(event.getAction() == MotionEvent.ACTION_MOVE){
            Log.i(TAG, "onTouchEvent: +ACTION_MOVE");
        }
        return super.onTouchEvent(event);
    }

    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {

    }
}
